// $Id: XmlView.java 335 2009-05-05 07:48:07Z huijzer $

/*    
    Aoide is a web-based music catalog using the Spring Framework.
    Copyright (C) 2009  Arjan Huijzer

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    
    You can contact Arjan Huijzer by sending an e-mail to huijzer@gmail.com.
*/

package org.aoide.web.view;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import nu.xom.Document;
import nu.xom.Serializer;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.View;

public class XmlView implements View {

        Log log = LogFactory.getLog(XmlView.class);
        
        public String getContentType() {
                return "text/xml";
        }

        @SuppressWarnings("unchecked")
		public void render(Map model, HttpServletRequest request,
                        HttpServletResponse response) throws Exception {

                // Retrieve data from model
                Document doc = (Document) model.get("xml");
                
                // Write the XML document to the reponse output stream
                OutputStream out = response.getOutputStream();
            try {
                        Serializer serializer = new Serializer(out, "utf-8");
                        serializer.setIndent(4);
                        serializer.setMaxLength(64);
                        serializer.write(doc);
                } catch (IOException ex) {
                        log.error(ex);
                }  

        }
        
}

